home *** CD-ROM | disk | FTP | other *** search
- Subject: v08i067: Smail, release 2.3, Part01/05
- Newsgroups: mod.sources
- Approved: mirror!rs
-
- Submitted by: Larry Auton <lda@clyde.att.com>
- Mod.sources: Volume 8, Issue 67
- Archive-name: smail2/Part01
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line,
- # then unpack it by saving it in a file and typing "sh file".
- # If all goes well, you will see the message "End of shell archive."
- # Contents: doc src doc/Contacts doc/Domains doc/Flow.Diagram
- # doc/Install doc/Read.Me doc/Registry doc/Trouble doc/aliases.8
- # doc/lcasep.8 doc/pathproc.8 src/Makefile
- # Wrapped by rs@mirror on Mon Feb 9 17:09:55 1987
- PATH=/bin:/usr/bin:/usr/ucb; export PATH
- if test ! -d 'doc' ; then
- echo shar: creating directory "'doc'"
- mkdir 'doc'
- fi
- if test ! -d 'src' ; then
- echo shar: creating directory "'src'"
- mkdir 'src'
- fi
- echo shar: extracting "'doc/Contacts'" '(713 characters)'
- if test -f 'doc/Contacts' ; then
- echo shar: will not over-write existing file "'doc/Contacts'"
- else
- sed 's/^X//' >doc/Contacts <<'@//E*O*F doc/Contacts//'
- X Contact Information
- X
- XWe strongly encourage electronic mail for queries, updates, and
- Xapplications. This cuts down on our costs, and we can pass those
- Xsavings along to you. We currently do not have a telephone number
- Xfor queries, although we hope to have one in the near future. If
- Xyou are unable to send and receive electronic mail, you will have
- Xto wait until we are prepared for telephone calls or postal mail.
- X
- XFor queries: uucp-query@Stargate.COM cbosgd!stargate!uucp-query
- X
- XFor updates: uucpmap@Stargate.COM cbosgd!stargate!uucpmap
- X
- XFor problems: uucp-problem@Stargate.COM cbosgd!stargate!uucp-problem
- X
- XTo register: registry@Stargate.COM cbosgd!stargate!registry
- X#
- X#@(#)Contacts 2.1 smail 12/14/86
- X#
- @//E*O*F doc/Contacts//
- if test 713 -ne "`wc -c <'doc/Contacts'`"; then
- echo shar: error transmitting "'doc/Contacts'" '(should have been 713 characters)'
- fi
- fi # end of overwriting check
- echo shar: extracting "'doc/Domains'" '(8824 characters)'
- if test -f 'doc/Domains' ; then
- echo shar: will not over-write existing file "'doc/Domains'"
- else
- sed 's/^X//' >doc/Domains <<'@//E*O*F doc/Domains//'
- X WHAT YOU NEED TO KNOW ABOUT PATHALIAS
- X AND WHAT PATHALIAS NEEDS TO KNOW ABOUT YOU
- X or
- X HOW PATHALIAS MAKES DOMAINS
- X
- X Christopher Seiwald
- X
- XThis note describes the host connectivity data and domain data
- Xneeded to effect UUCP domain-style address routing. This
- Xdescribes mostly the domain data, but also discusses how to
- Xdistribute connectivity data. Look elsewhere for a discussion of
- Xdomains.
- X
- XBriefly, the connectivity data (what's in mod.map) connects
- Xall hosts in the UUCP network into one big directed graph, and
- Xthe domain data superimposes a domain tree onto that graph.
- XPathalias converts these two sets of data into a routing database
- Xwhich smail/rmail, a UUCP mail routing program, uses.
- X
- X1. Domains and Gateways for UUCP
- X
- XFor domains in the UUCP zone, the top of a subdomain is all
- Xgateway hosts for that domain; the top of the UUCP zone will
- Xprobably be nearly a hundred hosts. As a transition aid, we
- Xalso consider an individual host at the bottom of the domain tree a
- Xsubdomain "host.UUCP", with one gateway and no further subdomains.
- X(We expect to phase this out eventually.)
- X
- XA gateway host for a domain must do four things:
- X I) Pass mail bound for that domain to the
- X appropriate host.
- X II) Pass mail bound for outside that domain to a
- X gateway in the parent domain.
- X III) Pass mail bound for a subdomain to a gateway of
- X that subdomain.
- X IV) Recognise the domain!user address syntax.
- X
- Xsmail/rmail already provides (IV). With the data described here,
- Xpushed through pathalias, smail/rmail can then provide (I)-(III).
- X
- X2. The Zone Registry
- X
- XFor any sizeable zone, one gateway host supports the zone registry.
- XFor other zones, such as BITNET, CSNET, DDN, etc., registries are
- Xsupported, using conventions appropriate to those zones. Contact
- Xelectronic mail addresses are supported for queries, and updates to
- Xconfiguration information may also be handled via mail. In the UUCP
- Xzone, the id's "uucpmap@cbosgd.ATT.COM" and "domains@cbosgd.ATT.COM"
- Xserve to collect the connectivity and domain data, respectively, for
- Xthat zone.
- X
- XThe registry for a zone speaks for that zone, communicating
- Xchiefly with its peers, the registry of the parent domain, and
- Xthe registries of the subdomains.
- X
- X3. Functions of Domain Data
- X
- XEach gateway for a domain must map the domain-style names into
- Xthe UUCP host names for all hosts of the domain. This host name
- Xmapping provides (I) above.
- X
- XEach gateway for a domain knows a) at least one gateway for each
- Ximmediate subdomain, and b) at least one gateway host of the
- Xparent domain. This provides (II) and (III) above.
- X
- XFor consistency across the gateways of a domain, each gateway for
- Xthe domain should know a) ALL gateways for each immediate
- Xsubdomain; and b) ALL gateways for the parent domain. Pathalias
- Xwill pick the closest. In this way, one single database can
- Xdescribe the domain structure for all gateways on a domain,
- Xwithout variations for each gateway.
- X
- XIn order to aid routing and avoid overloading the parent gateway,
- Xgateways should also know most gateways for peer level domains.
- XThis information is also provided by the map and used by pathalias.
- XWhen a new peer domain is created, traffic can be routed through the
- Xparent (which must be updated immediately) until information about
- Xthe peer can be propagated.
- X
- XAdditionally, a gateway could know about domains more than one
- Xlevel above or below it so that mail doesn't stop for address
- Xresolution at every gateway along its path.
- X
- X4. Format of Domain Data
- X
- X4.1 Host Name List
- X
- XThe host name list aliases the domain style address of a host to
- Xthe UUCP host name. The pathalias input format is:
- X
- X uucp-name .domain-name[, ...]
- X
- XThe .UUCP suffix is implicit in the uucp-name (smail/rmail does
- Xthis), and is not needed.
- XUpper/lower case doesn't matter in a dotted domain name.
- XExamples:
- X
- X ihnp4 = .ATT.COM
- X ucbvax = .Berkeley.EDU
- X cbosgd = .osgd.cb.att.com, .cbosgd.att.com
- X
- XMight produce from pathalias:
- X
- X ihnp4 mtxinu!ihnp4!%s
- X .ihnp4.ATT.COM mtxinu!ihnp4!%s
- X ucbvax ucbvax!%s
- X .Berkeley.EDU ucbvax!%s
- X cbosgd cbosgd!%s
- X .osgd.cb.att.com cbosgd!%s
- X .cbosgd.att.com cbosgd!%s
- X
- XA single host may have more than one domain style address; in
- Xfact, a host may be in several domains at once. However, each
- Xhost must have a single primary location in the domain tree,
- Xand other addresses should be viewed as transition aids. For
- Xexample, cbosgd might be known as cbosgd, cbosgd.UUCP,
- Xcbosgd.ATT.UUCP, cbosgd.btl.csnet, and cbosgd.ATT.COM, but
- Xthe primary name is the one in the organizational domain (COM)
- Xwhich applies to all networks, and the others are temporary
- Xnames for upward compatibility only.
- X
- X4.2 Domain Gateway List
- X
- XThe domain gateway list aliases the domain style address of a
- Xdomain to the UUCP host name of the closest gateway of that
- Xdomain. This involves a trick in pathalias, and employs a
- Xextra network name domain-gw. The pathalias input format is:
- X
- X domain-gw .domain-name
- X
- XAgain, the .UUCP suffix is implicit in the uucp-name, and is
- Xnot needed.
- XExamples:
- X
- X decwrl .DEC.COM
- X decuac .DEC.COM
- X
- X cbosgd .ATT.COM
- X clyde .ATT.COM
- X
- XMight generate from pathalias:
- X
- X .DEC.COM seismo!decuac!%s
- X .ATT.COM cbosgd!%s
- X
- XNote that pathalias chooses the closest host from inside the {}'s.
- XThe (DEAD)'s prevent pathalias from following along the mock network
- Xcalled "domain-gw".
- X
- X5. Distribution of Domain Data
- X
- XA zone registry maintains a Host Name List (in the format of 4.1
- Xabove) of all hosts within its domain and a Domain Gateway List
- X(in the format of 4.2 above) of all gateways of the domain.
- X
- XUp: A registry collects the Domain Gateway List from the registry
- Xof each of its subdomains, and transmits to the registry of its
- Xparent domain its own Domain Gateway List and, if it chooses, the
- XDomain Gateway Lists of some or all of its subdomains. Whether
- Xit includes lists from its subdomains depends on how important it
- Xconsiders them to the parent domain.
- X
- XDown: Similarly, a registry collects the Domain Gateway List from
- Xthe registry of its parent domain, and transmits to the registry
- Xof each of its subdomains its Domain Gateway List and the Domain
- XGateway List of its parent domain. Note that the Domain Gateway
- XList of the parent domain may include lists from the parent's
- Xother subdomains.
- X
- XA registry may decide not to use the parent domain's Domain
- XGateway List or not to transmit it to its subdomains' registries.
- X(This should be done only with the consent of the subdomains.) In
- Xthis case, the registry must introduce a domain gateway alias for
- Xall top level domains, to ensure that all the mail gets delivered.
- X
- XAcross: a registry transmits to each of the gateways of its
- Xdomain its Host Name List, its Domain Gateway List, and collected
- XDomain Gateway Lists. The registry also transmits to each normal
- Xhost (one gateway, no subdomains) of its domain its Domain
- XGateway List.
- X
- XTogether, "up," "down," and "across" insure that each gateway has
- Xthe Host Name List for its domain, and the Domain Gateway List of
- Xits own domain and at least its parent domain and subdomains.
- X"Up" and "across" will probably take place on demand by mail.
- X"Down" will probably be broadcast via netnews on a regular
- Xschedule. In particular, the second level information for the UUCP
- Xzone (one entry per organization) and the complete top level domain
- Xinformation make up the postings to mod.map.
- X
- X6. Distribution of Connectivity Data
- X
- XThe distribution of connectivity data will probably follow the
- Xpath of domain data: registries passing connectivity data up,
- Xdown, and across the domain tree, with the exception that the
- Xconnectivity within a third (or lower) level domain will be
- Xdiscouraged from leaving the domain, so the data the UUCP zone
- Xregistry distributes will include only the first and second
- Xlevel gateways. Local information about internal subdomains and
- Xmachines of organizations should not be included in globally
- Xpublished information, but rather distributed locally as needed.
- X
- X7. Various Notes
- X
- XThe following are examples of data that should be joined together
- Xas input to pathalias.
- X
- X Parent Domain Gateway List
- X Parent Connectivity Data
- X This Level Domain Gateway List
- X This Level Host Name List
- X This Level Connectivity Data
- X Collected Subdomains' Domain Gateway Lists
- X Collected Subdomains' Connectivity Data
- X Private Additions
- X Alias for "this host"
- X
- XThis note does not describe the inclusion of private additions to
- Xthe domain or connectivity data.
- X
- XBecause domain names intermix with host names (and the .UUCP
- Xsuffix is implicit), you can address hosts known at your gateway
- Xas "uucp-host.UUCP". We discourage this, because the address is
- Xthen particular to the sender's location.
- X
- X
- X /+\
- X5/1/85 +\ chris@cbosgd.att.com
- X \+/
- X
- X[Updated 5/9/86 by Mark Horton.]
- X#
- X#@(#)Domains 2.1 smail 12/14/86
- X#
- @//E*O*F doc/Domains//
- if test 8824 -ne "`wc -c <'doc/Domains'`"; then
- echo shar: error transmitting "'doc/Domains'" '(should have been 8824 characters)'
- fi
- fi # end of overwriting check
- echo shar: extracting "'doc/Flow.Diagram'" '(2664 characters)'
- if test -f 'doc/Flow.Diagram' ; then
- echo shar: will not over-write existing file "'doc/Flow.Diagram'"
- else
- sed 's/^X//' >doc/Flow.Diagram <<'@//E*O*F doc/Flow.Diagram//'
- Xvanilla 4.2BSD mail flow
- X
- XLOCAL /bin/mail ---- -- /bin/mail -- LOCAL
- X \ /
- X ----------- sendmail --
- X / / \
- XLOCAL Mail --------- / -- uux -------- REMOTE
- X /
- XREMOTE /bin/rmail ------------
- X
- X==========================
- X
- Xsmail 4.2BSD mail flow
- X
- XLOCAL /bin/mail -- /bin/mail -- LOCAL
- X \ /
- X ------------ sendmail --
- X / / \
- XLOCAL Mail --- / -- /bin/smail -
- X / (non-bang) \
- XREMOTE /bin/rmail ------ \
- X \ (bang) \
- X ------------------------------------- uux REMOTE
- X
- X==========================
- X
- Xvanilla SVR2 mail flow
- X
- X mail is "/usr/src/cmd/mail.c"
- X rmail is linked to mail
- X
- XLOCAL mail ------------\ /--------------------- LOCAL
- X \ /
- XLOCAL mailx ----> mail ---+----------+
- X / \
- XREMOTE rmail ------------/ \-- uux -------------- REMOTE
- X
- X==========================
- X
- XModified SVR2 mail flow using SENDMAIL
- X
- XDefinitions of changed/renamed programs
- X
- X mail is "svbinmail.c"
- X lmail is "/usr/src/cmd/mail.c"
- X rmail is linked to smail
- X
- XLOCAL mail ------------\ /-- lmail ---------- LOCAL
- X \ /
- X +--sendmail--+
- X / \
- XLOCAL mailx --- mail ---/ \-- smail -- uux --- REMOTE
- X
- X
- X /-- lmail ------ LOCAL
- X /
- X /--sendmail--+
- X / \
- X / \- smail - uux - REMOTE
- X / (domain | LOCAL)
- XREMOTE rmail --------------+
- X \ (bang)
- X \
- X \------------------ uux -------- REMOTE
- X
- X==========================
- X
- XModified SVR2 mail flow without SENDMAIL
- X
- XLOCAL mail ------------\ /-- lmail ---------- LOCAL
- X \ /
- X +-- rmail ---+
- X / / \
- XLOCAL mailx --- mail ---/ / \-- uux ----------- REMOTE
- X /
- X /
- XREMOTE --------------------+
- X
- X#
- X# @(#)Flow.Diagram 2.1 smail 12/14/86
- X#
- @//E*O*F doc/Flow.Diagram//
- if test 2664 -ne "`wc -c <'doc/Flow.Diagram'`"; then
- echo shar: error transmitting "'doc/Flow.Diagram'" '(should have been 2664 characters)'
- fi
- fi # end of overwriting check
- echo shar: extracting "'doc/Install'" '(2180 characters)'
- if test -f 'doc/Install' ; then
- echo shar: will not over-write existing file "'doc/Install'"
- else
- sed 's/^X//' >doc/Install <<'@//E*O*F doc/Install//'
- XThere are three system types on which smail can be installed.
- X
- X (1) Berkeley with sendmail
- X (2) System V with sendmail
- X (3) System V without sendmail
- X
- X Note: if you have a System III or V7 derived system, you
- X can probably treat it like (3). We have not tested smail
- X on such a system.
- X
- XThe installation will vary slightly for each system type.
- X
- XFor all systems you first have to create a 'paths' database.
- XSee paths(8) for details on the file's format. Then
- Xcopy it to /usr/lib/uucp/paths.
- X
- XNext, edit "defs.h" to configure smail to suit your situation.
- X
- XHere are step by step installation instructions for each system type.
- X
- X(1) For a berkeley system with sendmail, the steps are:
- X
- X $ make
- X
- X $ cp smail /bin/smail
- X
- X $ sh make.cf.sh
- X <answer the questions it asks>
- X
- X $ mv /usr/lib/sendmail.cf /usr/lib/OLDsendmail.cf
- X
- X $ cp sendmail.cf /usr/lib/sendmail.cf
- X
- X $ /usr/lib/sendmail -bz
- X
- X $ mv /bin/rmail /bin/OLDrmail
- X
- X $ ln /bin/smail /bin/rmail
- X
- X(2) For a System V system with sendmail, the steps are:
- X
- X $ make
- X
- X $ cp smail /bin/smail
- X
- X $ ln /bin/mail /bin/lmail
- X
- X $ sh make.cf.sh
- X <answer the questions it asks>
- X
- X $ mv /usr/lib/sendmail.cf /usr/lib/OLDsendmail.cf
- X
- X $ cp sendmail.cf /usr/lib/sendmail.cf
- X
- X $ /usr/lib/sendmail -bz
- X
- X $ rm /bin/mail # (Remember, you still have it in /bin/lmail.)
- X
- X $ mv svbinmail /bin/mail
- X
- X $ mv /bin/rmail /bin/OLDrmail
- X
- X $ ln /bin/smail /bin/rmail
- X
- X Note: some implementations of sendmail don't work when the 'U'
- X flag is set in the definition of the local mailer (a line that
- X begins with "Mlocal" in the generated sendmail.cf). If you try
- X to send mail from a local user to a local user, a message comes
- X out that says "No '!' in UUCP! (user)" - and the mail fails.
- X If this happens take the 'U' flag out of the sendmail.cf.
- X
- X [ the >'s are secondary prompts from the shell,
- X and ^M is 'carat' 'M', not 'control-M' ]
- X
- X $ ed sendmail.cf <<!
- X > /^Mlocal/s/SU/S/
- X > w
- X > q
- X > !
- X
- X(3) For a System V system without sendmail, the steps are:
- X
- X $ make
- X
- X $ cp smail /bin/smail
- X
- X $ mv /bin/mail /bin/lmail
- X
- X $ mv svbinmail /bin/mail
- X
- X $ mv /bin/rmail /bin/OLDrmail
- X
- X $ ln /bin/smail /bin/rmail
- X
- XYou're done.
- X
- X#
- X# @(#)Install 2.1 smail 12/14/86
- X#
- @//E*O*F doc/Install//
- if test 2180 -ne "`wc -c <'doc/Install'`"; then
- echo shar: error transmitting "'doc/Install'" '(should have been 2180 characters)'
- fi
- fi # end of overwriting check
- echo shar: extracting "'doc/Read.Me'" '(7522 characters)'
- if test -f 'doc/Read.Me' ; then
- echo shar: will not over-write existing file "'doc/Read.Me'"
- else
- sed 's/^X//' >doc/Read.Me <<'@//E*O*F doc/Read.Me//'
- X READ ME - Updated 2/6/87
- X
- XWhat smail does:
- X
- X smail is capable of handling UUCP syntax (bang paths, bang
- X domains, and at domains are supported) mail transportation
- X over UUCP/uux/rmail channels. It will support machines that
- X only have UUCP connections, and machines with UUCP links to
- X the outside world plus a small number of local machines that
- X are reached via SMTP. The domain intelligence is embedded
- X in the smail database (e.g. the pathalias output), not the
- X sendmail.cf file, so if you have a fancier domain structure
- X that involves SMTP or anything other than uux in the domain
- X structure, you'll want to modify the sendmail.cf file here or
- X merge pieces of the enclosed sendmail.cf into your own.
- X
- X smail runs under 4.2BSD and System V, as a back end to sendmail;
- X and under System V without sendmail. It also replaces rmail, which
- X becomes a link to smail. In a sendmail environment, smail depends on
- X sendmail to crack the headers, as smail just deals with the envelope.
- X smail makes your host capable of using the INTERNET definition in the
- X Usenet software.
- X
- X Features of smail include:
- X
- X (1) Using pathalias data to choose the best route to your destination.
- X (2) Handling of user@domain, domain!user, and host!user syntax.
- X (3) Generation of domain!user syntax to be forwarded by other systems.
- X (4) Logging of traffic through your machine, by sender, recipient, and
- X size of message, so you can, track use and detect abuse of your
- X machine.
- X (5) Mail being forwarded through your machine to another uux link is
- X passed from rmail directly to uux, so there's less overhead on
- X your machine (sendmail stays out of the loop.)
- X (6) Sendmail-like alias capability for hosts without sendmail.
- X (7) Generation of RFC822 required headers for locally generated mail.
- X (8) Robust delivery scheme that reroutes only if stated path is inaccessible.
- X (8) Mail that is undeliverable is returned to sender.
- X (9) Simplicity.
- X
- XPrerequisites:
- X
- X A copy of a recent posting of pathalias. (The one posted
- X by Peter Honeyman in January 1986 is recommended.)
- X
- X A current copy of the UUCP map, or at least a copy of the
- X appropriate part of it that you're interested in.
- X
- X A properly registered domain name for your organization, such
- X as ATT.COM. (It is possible to run smail using a domain name
- X under .UUCP, but since this can't be officially registered,
- X it is appropriate only for testing.)
- X
- X You can get pathalias from the mod.sources Usenet archive (contact
- X sources-request@mirror.TMC.COM or mirror!sources-request)
- X
- X You can get a UUCP map each month from Usenet newsgroup mod.map.
- X The UUCP map is quite large (currently about 2MB) so please don't ask
- X to have a copy mailed to you - get a copy from a nearby Usenet site.
- X
- X You can get a domain name by joining the UUCP Zone. There are
- X low membership dues for this, and a registration process that
- X will take 2-8 weeks. This Read.Me file may be out of date by
- X the time you read it, so we ask you to contact us for current
- X dues rates and procedures. Contact uucp-query@Stargate.COM or
- X cbosgd!stargate!uucp-query and ask for the UUCP Zone information
- X packet. (If you already belong to a network such as CSNET, DDN,
- X or BITNET, your organization may already have a domain name. If
- X you are also on UUCP, it is recommended that you also join the
- X UUCP Zone at the lower rate for organizations whose primary
- X affiliation is with another network. See the file "Registry"
- X for more information.
- X
- XOverall structure:
- X
- X smail is installed in /bin/smail with a link in /bin/rmail. Uuxqt
- X calls rmail, which either forwards the message on to the next hop
- X directly or, on a sysetm with sendmail, calls sendmail. sendmail
- X may decide the message should be delivered by UUCP, and invoke smail,
- X which will look up a route and invoke uux. (Note that the choice
- X about when to invoke sendmail and when to process a message directly
- X can be configured in smail.)
- X
- X smail uses a database which is generated from pathalias. You take the
- X current UUCP map, add some local information and topology data (to tell
- X it about the domain tree) and run pathalias. The result is sorted and
- X installed in /usr/lib/uucp/paths. There is no hashing done on this
- X file - when smail looks up a name it uses a binary search.
- X
- XInstallation Instructions:
- X
- X Save your /bin/rmail and /usr/lib/sendmail.cf somewhere safe, in case
- X of disaster. If you already have a /bin/smail or /usr/lib/uucp/paths,
- X you might want to save them too.
- X
- X If you have the logging turned on, you should arrange that something
- X out of crontab erases the logs regularly, or your disk may fill up.
- X One line per message is created in /usr/lib/uucp/mail.log. If you
- X log full messages, they get put in /tmp/mail.log. (Note that full
- X message logging is considered anti-social if you use it to snoop;
- X it is recommended that this feature only be used if you are running
- X software that you don't completely trust, so you can reproduce any
- X problem that might turn up.)
- X
- X Now see the file Install for step by step instructions.
- X
- XConfiguration considerations:
- X
- X You'll note two configuration options in defs.h: HANDLE and ROUTING.
- X These control which sorts of addresses smail/rmail will handle, and
- X which type of routing they will do. The HANDLE define only affects
- X rmail, since smail sets it implicitly. In any case, we recommend
- X that you leave HANDLE alone, unless you are making major changes.
- X
- X ROUTING has three choices: JUSTDOMAIN, ALWAYS, and REROUTE. rmail
- X will run as JUSTDOMAIN, the defs.h default. This means rmail will
- X only apply routing if it sees "rmail user@domain", and will just call
- X uux if it sees "rmail host!user". (If the uux fails, it will call
- X smail -r, which will apply ALWAYS routing to try to get the mail
- X there anyway. If the ALWAYS routing fails, then REROUTE routing is
- X applied. This has the advantage of being low overhead on your
- X system, not second guessing a route someone else asked for, and still
- X recovering nicely from the mistakes of another system. Your host
- X becomes a "smart host" that can get mail anywhere.)
- X
- X Many people will note huge paths going through their machine. These
- X paths are generated by replies to netnews messages, and tend to be 10
- X or 20 hops long - far longer than necessary. If you are a bit aggressive,
- X you can change -r to -R, which will cause such failed mail to be rerouted,
- X thus, mail to a!b!c!d!e!f!g!user will look up a route to g, and send the
- X mail to route!g!user. (If it can't find g, it will try f, then e, and
- X so on until it finds someone it recognizes.) If you are REALLY aggressive,
- X you can change ROUTING to REROUTE in defs.h, to get the same effect for
- X ALL rmail being passed through your machine. This may help cut phone
- X bills, but it has some disadvantages. It can lengthen a path sometimes,
- X e.g. mail to tektronix!user might turn into ihnp4!tektronix!user if your
- X routing database says mail to tektronix goes through ihnp4. It makes it
- X hard to route around a dead host, or to redirect traffic from a mailing
- X list to several different directions. It may also make mail go a different
- X path than what your user thought it was, and it affects other hosts that
- X route mail through you if you set ROUTING to REROUTE in defs.h. So only
- X do this if you know what you are doing, and are willing to live with the
- X disadvantages.
- X
- X#
- X#@(#)Read.Me 2.1 smail 12/14/86
- X#
- @//E*O*F doc/Read.Me//
- if test 7522 -ne "`wc -c <'doc/Read.Me'`"; then
- echo shar: error transmitting "'doc/Read.Me'" '(should have been 7522 characters)'
- fi
- fi # end of overwriting check
- echo shar: extracting "'doc/Registry'" '(11417 characters)'
- if test -f 'doc/Registry' ; then
- echo shar: will not over-write existing file "'doc/Registry'"
- else
- sed 's/^X//' >doc/Registry <<'@//E*O*F doc/Registry//'
- X UUCP Zone Registry
- X 2/6/87
- X
- XTo use smail, or other software supporting domain addresses, you need
- Xto have a domain name registered in the domain tree. This name must be
- Xunique in the world, and must be registered with the appropriate
- Xregistry. Your domain must also have a forwarder from DDN (also
- Xcalled ARPANET and MILNET).
- X
- XIf your primary network affiliation is with CSNET, BITNET, or DDN,
- Xyour organization may already have a domain name. If you are not
- Xon one of these networks, you can join the UUCP Zone to get your
- Xorganization name registered.
- X
- X History and Structure
- X
- XThe exact structure of the domain tree is evolving. In 1984, the top
- Xlevels were network names (ARPA, CSNET, BITNET, UUCP, and so on) and
- Xthe second levels were hosts. The problem with this structure is that
- Xmachines connected to several networks have several names, and it's
- Xdifficult for users to predict the address of someone without knowing
- Xtheir network connections.
- X
- XIn 1986, the domain tree in the USA has three major top level domains:
- XCOM for companies, EDU for educational institutions, and GOV for
- Xgovernment entities. Three other top level names exist: MIL, NET, ORG,
- Xbut are somewhat specialized. For the most part, countries other than
- Xthe USA are using the ISO 3166 2 letter abbreviation for their country
- Xas a top level.
- X
- XExamples include US for USA, AU for Australia, JP for Japan, NL for
- XNetherlands. Abbreviations that are not ISO 3166 include CAN for
- XCanada and and UK for the United Kingdom.
- X
- XOne way of looking at the domain tree is that the top level is always
- Xthe country, where COM, EDU, and GOV are three pretend "countries" all
- Xlocated in the USA. (This isn't quite strictly true, since some Canadian
- Xorganizations are registering under EDU or COM, intending to also register
- Xunder CAN later.)
- X
- XThe second level is generally the name of the organization, using the
- Xshortest possible abbreviation that is clear and unique, thus ATT, DEC,
- XIBM, HP, etc. The choice of exact name is up to the organization, and
- Xlonger names, such as Berkeley.EDU or Tektronix.COM are perfectly
- Xacceptable. Just remember that people must type the name, as well as
- Xsee it displayed.
- X
- XNot all countries use the second level for the organization. In
- Xparticular, Australia and Britain have set up second level domains
- XAC.UK and OZ.AU for their academic communities, and put the
- Xorganization at the third level.
- X
- XThe third and subsequent levels, if used, should be organizational
- Xunits within the organization. Try to keep the number of levels to a
- Xminimum, since people have to type the names. More than four total
- Xlevels (country, org, ou1, and ou2) should rarely be needed. The
- Xactual organizational units to be used are up to you, for example, they
- Xmight be departments, or they might be machine names. For example,
- XStargate has names like Base.Stargate.COM, where COM means a company,
- XStargate is the organization (company) name, and Base is the name of
- Xthe machine within Stargate. A larger example: AT&T is using names
- Xlike cbpavo.MIS.OH.ATT.COM, where COM means AT&T is a company, ATT is
- Xthe organization, OH means Ohio, MIS stands for Medical Information
- XSystems, and cbpavo is a computer in the MIS project.
- X
- XA "zone" is a registry of domains kept by a particular organization. A
- Xzone registry is "authoritative", that is, the master copy of the
- Xregistry is kept by the zone organization, and this copy is, by
- Xdefinition, always up-to-date. Copies of this registry may be
- Xdistributed to other places and kept in caches, but these caches are
- Xnot authoritative because they may be out of date. An authoritative
- Xanswer is required for certain decisions, such as "this mail cannot be
- Xdelivered because there is no such domain", or "the name you have
- Xchosen is available and is now assigned uniquely to you."
- X
- XIn the USA, there are currently four zones: DDN (formerly called the
- XARPANET), CSNET, BITNET, and UUCP. These zones all share the top level
- Xdomains COM, EDU, GOV, etc. The top level domains are administered by
- Xthe DDN (Defense Data Network) NIC (Network Information Center) at SRI
- X(SRI, Inc, formerly Stanford Research Institute, in Menlo Park, CA.)
- XThe CSNET, BITNET, and UUCP registries serve as a go-between to avoid
- Xswamping the NIC with individual registrations. It is possible for an
- Xorganization to be members of more than one of these networks, in which
- Xcase they register with each network, using the same name on all
- Xnetworks.
- X
- XThe UUCP Project keeps a registry of members of the UUCP Zone. This
- Xregistry is different than the UUCP map, although the registry is posted
- Xwith the UUCP map. The UUCP Zone registry consists only of organizations
- Xwhich are members of the UUCP Zone. To become a member, it is
- Xnecessary to explicitly join, just as one joins CSNET or BITNET. Just
- Xbeing reachable via a bang path does not imply membership, nor does
- Xappearance in the UUCP map.
- X
- XTo join the UUCP Zone, it is necessary to apply for membership. This
- Xinvolves paying low annual membership dues to the project, deciding how to
- Xstructure your domain and where to put it into the global domain tree,
- Xinstalling software such as smail, finding a forwarder, and doing some
- Xelectronic paperwork. Please contact us at one of these addresses and
- Xask for the membership kit; it will contain up-to-date information on
- Xjoining, including the fee structure, information about forwarders,
- Xinformation about 3rd level domain "parks", and forms to fill out.
- X
- XSee the "Contact Information" below for instructions to contact us;
- Xplease use the "query" address for the initial query.
- X
- X Organizational Registry
- X
- XIf you are registering your organization in the UUCP zone, you are in
- Xeffect creating another zone registry for your organization. Any
- Xsubdomains of your organizational domain must be registered with you.
- X(You need not keep us informed of all your subdomains, just the gateways.)
- X
- XFor the time being, unless you are ready to start organizing the machines
- Xin your organization, don't worry about this. You can just set things up
- Xto handle your one machine (or more if you like). Just keep in mind that
- Xyour machine is but one machine in your organization, so you should be
- Xplanning to have an address like fred@compsci.BigCorp.COM (where "fred" is
- Xa login name on machine "compsci" owned by organization "BigCorp") rather
- Xthan fred@BigCorp.COM.
- X
- XFor example, if you are the first host in the University of North Dakota to
- Xjoin, you are creating a subdomain UND.EDU (for example.) Your host might
- Xhave a name like undvax.UND.EDU. When other machines are joined in later,
- Xthey will also register under UND.EDU, for example, cs3b20.UND.EDU.
- XAll subdomains of UND (this may mean all hosts in the UND domain) are
- Xregistered with the UND.EDU registry. Unless you create a campus organization
- Xspecifically to run this registry, this means you are the UND.EDU registry.
- XIt is your job to keep track of everybody in the registry, hand out names
- Xfor subdomains, make sure there are no duplicates (you have to make sure there
- Xaren't two machines called cs3b2.UND.EDU, for example) and know who to
- Xcontact if a problem arises. You have created the UND Zone, which is
- Xsimilar to the UUCP Zone, but one level further down in the heirarchy.
- X
- XAt some point, you may decide that you want more layers of subdomains in
- Xyour zone. For example, if the CS, Math, and Stat departments at UND all
- Xwant to manage their own zones, you might use names like vax.CS.UND.EDU,
- X3b20.Math.UND.EDU, and so on. The UND Zone has delegated its naming
- Xauthority to the CS Zone, the Math Zone, and so on. The root delegates
- Xto COM, COM delegates to UUCP, UUCP delegates to UND, UND delegates to CS.
- X
- XNote that the names are given in upper or mixed case, but the exact
- Xcase doesn't matter, since the software ignores it. We recommend that
- Xyou choose your capitalization to look nice when printed.
- X
- XNote also that "vax", "3b20", and the like are terrible host names,
- Xbecause sooner or later you'll have more than one vax, or more than
- Xone 3b20, and the names will be confusing. We recommend organizational
- Xnames, based on the department or project the machine is used for.
- XOf course, in order to keep the names reasonably short and to avoid
- Xduplicating names in the heirarchy, some compromise will be needed.
- XFor example, csvax.CS.UND.EDU is redundant, but RISC.CS.UND.EDU might
- Xbe a good name for the computer used by the RISC project in the CS
- Xdepartment.
- X
- X Notes:
- X
- XOrganizations are encouraged to eventually support two kinds of electronic
- Xmail addresses:
- X
- X(1) Login name on machine: a string which is understood on a particular
- X machine, combined with a fully qualified domain name of a machine.
- X The string is often, although not always, a login name.
- X Example:
- X mrh@cbosgd.ATT.COM
- X
- X(2) Personal name in organization: a string which is the name of a person,
- X understood by all gateway machines.
- X Example:
- X Mark.R.Horton@ATT.COM
- X This allows mail to be sent without knowing the full address
- X of the recipient, only their name and company. Implementations
- X should be as forgiving as possible of errors in the personal name.
- X For example, if possible, as many of the following as possible
- X should be accepted:
- X mark.r.horton@att.com (ignore case)
- X m.r.horton@ATT.COM (accept initials)
- X mark.horton@ATT.COM (don't require initials)
- X mark.randolph.horton@ATT.COM
- X m.horton@ATT.COM (if not ambiguous)
- X horton@ATT.COM (if not ambiguous)
- X mark.horton.sr@ATT.COM (allow generational qualifier)
- X
- XHowever, it's perfectly fine to just support just one style.
- XSince the login name style (1) is easy to support, you may prefer to
- Xjust handle that one, especially at first. Style (1) is by far the
- Xmost commonly used method as this is written.
- X
- XPlease note that you should support both RFC 976 and the documents
- Xit refers to, in particular RFC 822 and RFC 920. This means, for
- Xexample:
- X
- X(a) The name "postmaster" on all machines visible to the outside
- X should be forwarded to the technical contact. This can be
- X easily done with an alias in /usr/lib/aliases, if your site
- X runs sendmail or smail 2.0. Please be sure to also support
- X Postmaster, PostMaster, and POSTMASTER, if you use sendmail.
- X
- X(b) Your machine should not alter valid RFC 822 headers, such as
- X From:, of mail it generates or forwards. Many machines running
- X sendmail have a bug which adds uucpname! to the front of such
- X addresses. Installing smail will fix the bug, because mail
- X passed through the machine is not passed through sendmail.
- X We hope to make a fix to sendmail available, also, at a
- X later date.
- X
- X Contact Information
- X
- XWe strongly encourage electronic mail for queries, updates, and
- Xapplications. This cuts down on our costs, and we can pass those
- Xsavings along to you. We currently do not have a telephone number
- Xfor queries, although we hope to have one in the near future. If
- Xyou are unable to send and receive electronic mail, you will have
- Xto wait until we are prepared for telephone calls or postal mail.
- X
- XFor queries: uucp-query@Stargate.COM cbosgd!stargate!uucp-query
- X
- XFor updates: uucpmap@Stargate.COM cbosgd!stargate!uucpmap
- X
- XFor problems: uucp-problem@Stargate.COM cbosgd!stargate!uucp-problem
- X
- XTo register: registry@Stargate.COM cbosgd!stargate!registry
- X
- XUUCP host "stargate" can also be reached via uiucdcs or cbatt.
- X#
- X#@(#)Registry 2.1 smail 12/14/86
- X#
- @//E*O*F doc/Registry//
- if test 11417 -ne "`wc -c <'doc/Registry'`"; then
- echo shar: error transmitting "'doc/Registry'" '(should have been 11417 characters)'
- fi
- fi # end of overwriting check
- echo shar: extracting "'doc/Trouble'" '(10836 characters)'
- if test -f 'doc/Trouble' ; then
- echo shar: will not over-write existing file "'doc/Trouble'"
- else
- sed 's/^X//' >doc/Trouble <<'@//E*O*F doc/Trouble//'
- X Common Problems and Recommended Solutions
- X
- X Updated 12/14/86
- X
- X(1) The configuration shell script smail.cf.sh insists that
- XI give it another domain that I'm authoritative for, but we
- Xdon't have anything to give it.
- X
- X This is a common problem for small companies that only
- X have one machine, or for organizations that are originally
- X registering in COM/EDU/GOV and were never known in UUCP.
- X
- X The shell script is somewhat simple - it really should let
- X you just hit RETURN here. But you can go ahead and follow
- X the examples anyway, and it shouldn't hurt anything.
- X
- X For example, if you're FOOBAR.COM:
- X Enter This Host's Name:
- X foobar
- X Enter This Host's Official Domain:
- X COM
- X Enter Any Equivalent Domain Classes:
- X foobar
- X Enter Any Domains For Which This Host Is An Authority:
- X foobar.UUCP
- X The first two lines mean that you are user@foobar.COM (the two
- X entries strung together.) The second one means you also
- X understand what to do with user@foobar, which isn't really
- X legal but may tend to crop up from time to time. The last
- X means you also understand user@foobar.UUCP, which is important
- X for upward compatibility since that's commonly generated by
- X other systems, by netnews software, and the like.
- X
- X(2) I can send mail to others OK, but sometimes when they send mail
- Xto me or I send mail to others on my machine, it doesn't work.
- XIt says "couldn't resolve myhost.mydom!user".
- X
- X This is probably a configuration problem. Look in defs.h to see
- X how you have MYDOM set. It comes distributed as ".UUCP", but
- X you probably want to change this to the answer to the "Enter This
- X Host's Official Domain" question above. If you don't run sendmail,
- X this is the only way smail has of knowing your host name.
- X (We really should have smail read this in from a file, for future
- X 3rd party binary distributions, but so far we haven't.)
- X
- X(3) Mail isn't getting through sometimes, and since I just installed
- Xthis new software, I suspect it. Or, I see munged header lines, and
- XI don't know who is doing it.
- X
- X If you aren't sure where the mail is getting dropped (remember, UUCP
- X is an unreliable transport mechanism, so lots of things could be going
- X wrong) here's a trick we sometimes use to find out what's going on.
- X mv /bin/rmail /bin/realrmail
- X
- X cat > /bin/rmail
- X #! /bin/sh
- X umask 0
- X LF=/usr/spool/uucp/rmail.log
- X cat > /tmp/rm$$
- X echo " " >> $LF
- X date >> $LF
- X echo rmail $* >> $LF
- X cat /tmp/rm$$ >> $LF
- X realrmail $* < /tmp/rm$$
- X st=$?
- X rm /tmp/rm$$
- X exit $st
- X ^D
- X chmod 755 /bin/rmail
- X
- X This will keep a very verbose log of all incoming traffic into your
- X machine in LF, including the text as it arrived on your machine, and
- X the arguments to rmail. You can tell whether it was broken when it
- X arrived or if you broke it, and you can reproduce the mail by editing
- X out the message (into, say, /tmp/msg) and running
- X realrmail args < /tmp/msg
- X using the args as they appear in the file.
- X
- X Some words of warning. (a) These files can get big very fast if you
- X process much traffic through your machine, so be sure to clean them
- X out often. (b) This saves everything, including the message body.
- X It is unethical to browse such logs unless a specific problem has
- X arisen which requires you to check the log. This is one reason why
- X it's kept in /usr/spool/uucp, if you have a hidden directory on your
- X system that's even better. (c) This extra set of file copies adds
- X overhead to your machine, so don't run this unless you suspect you
- X have a problem, and then take it out when you trust things again.
- X
- X There is a RECORD option in the code which is similar, but this
- X option saves the mail at a later stage, so you lose some information
- X about how it arrived on your machine.
- X
- X(4) I don't understand how to set up subdomain of my domain.
- X
- X There are two ways to do this. The easiest is just by recognizing
- X the subdomain host by their UUCP name. If you are the gateway for
- X domain FOO.COM, then any mail through your sendmail to bar.FOO.COM
- X or to bar.myname.FOO.COM (where "myname" is your hosts's name) will
- X be treated as if it were bar.UUCP, so if the name "bar" is in your
- X path file, you're all set. The disadvantage to this is that if you
- X want to create a subdomain whose name conflicts with a public name,
- X it won't work. If you want to disable this code, look for "mydom"
- X in the sendmail.cf.
- X
- X A perhaps cleaner way is to explicitly put the subdomains into the
- X pathalias database. Thus, if you have a.FOO.COM, b.FOO.COM, p.b.FOO.COM,
- X x.myname.FOO.COM, and y.myname.FOO.COM, you could include this in
- X your local pathalias input:
- X aname .a.FOO.COM
- X bname .b.FOO.COM
- X pname .p.b.FOO.COM
- X xname .x.myname.FOO.COM
- X yname .y.myname.FOO.COM
- X In each case, "aname" is the UUCP name for host "a", etc. This
- X sort of says "aname and a.FOO.COM are the same host." This
- X description says that you have subdomains x and y under your host,
- X that there are peer subdomains a and b, and that you know about
- X a subdomain of b called p. Other subdomains of a and b that
- X are not mentioned here will be routed through aname or bname as
- X gateways. The only reason to mention p here would be if we have
- X a direct link and want to avoid routing through bname. If you
- X do this, you have less strict requirements about name uniqueness:
- X aname, bname, pname, xname, and yname must still be unique, and
- X a.FOO.COM, b.FOO.COM, p.b.FOO.COM, x.myname.FOO.COM, and
- X y.myname.FOO.COM must also be unique (ignoring case, so that
- X two different hosts a.foo.com and A.FOO.COM conflict.) In
- X particular, this means that if you have a local host with a name
- X that isn't unique, say "bilbo", you can safely create a subdomain
- X "bilbo.myname.FOO.COM", but you'll still have a problem if the
- X UUCP name of the host is "bilbo". You may be able to make this
- X partly work using the pathalias "private" notation, but we advise
- X you to change the UUCP name to something unique.
- X
- X(5) When another host in my domain sends mail to a third host in my
- X domain, it seems to get routed through the gateway even though
- X my host knows how to route directly.
- X
- X For example, suppose you have gateway cbosgd.att.com, and other
- X machines foo.att.com and bar.att.com. Smail is installed on all
- X three machines. But when a user on foo sends to user@bar.att.com,
- X the mail is routed via cbosgd. Sometimes, you may even see this
- X happen for mail on foo to foo.
- X
- X There are two solutions. The first is to make sure that foo knows
- X that bar.att.com is the same as bar (where "bar" is the uucp name.)
- X Include lines in the local pathalias input files like
- X foo .foo.att.com
- X bar .bar.att.com
- X cbosgd .cbosgd.att.com
- X
- X The second solution is to declare foo to be a gateway for your
- X subdomain, e.g.
- X foo .att.com
- X This will handle all mail to att.com locally on foo instead of
- X routing it through cbosgd. (It also means you'd better be sure
- X to keep the routing tables on foo as up to date as on cbosgd.)
- X
- X The first method is strongly recommended for everyone. The second
- X is appropriate only for well maintained and supported hosts.
- X Either should handle the problem.
- X
- X(6) Mail to some domains isn't working. For example, if I type
- X
- X smail -d USER@LLL-MFE.ARPA
- X
- X It says:
- X
- X resolve: parse address 'USER@LLL-MFE.ARPA' = 'USER' @ 'LLL-MFE.ARPA' (DOMAIN)
- X getpath: looking for '.LLL-MFE.ARPA'
- X getpath: looking for 'LLL-MFE.ARPA'
- X getpath: looking for '.ARPA'
- X getpath: looking for 'ARPA'
- X route 'LLL-MFE.ARPA' failed
- X resolve failed 'USER@LLL-MFE.ARPA' = 'USER' @ 'LLL-MFE.ARPA' (DOMAIN)
- X
- X There is a .arpa line in the pathalias database that looks like:
- X
- X .arpa ihnp4!akgua!gatech!seismo!%s
- X
- X Chances are the pathalias database is out of order. Remember
- X to run it through "sort -f" before storing it.
- X
- X(7) People on the ARPANET are complaining about us sending them mail
- X from FOO.COM when we aren't on the ARPANET.
- X
- X Politely ask them to upgrade their mail system to support MX
- X records, as required by RFC's 973 and 974.
- X
- X If you have a COM, EDU, or GOV name confirmed by the UUCP Zone, and
- X you have a working forwarder, you have an officially allocated name
- X which you are entitled to use.
- X
- X However, do understand that the old way of handling things on the
- X ARPANET was to open a connection directly to the destination host
- X and send the mail via SMTP. Many hosts assume that a name ending
- X in ARPA, COM, etc implies being on the ARPANET, and handle mail
- X this way. (4.3BSD still does this.) The above RFC's, approved in
- X January 1986, say that mailers are supposed to check for an MX
- X record, which says that mail for one domain should be delivered to
- X a different host to be forwarded. As of December, 1986, many
- X ARPANET hosts still have mailers that understand MX, and the
- X standard UNIX and TOPS 20 mailers don't support it. So politely
- X urge them to find whoever supports their mailer and get it upgraded
- X to support MX. (Berkeley has a version of sendmail that supports
- X it, but it isn't in 4.3BSD. An MX supporting sendmail can be found
- X on ucbarpa.Berkeley.EDU by logging in as anonymous and retrieving
- X pub/4.3/sendmail.MX.tar. The file is 1.26MB. The latest MMDF also
- X supports it.) In the meantime, tell whoever is trying to send you
- X mail that mail to user@foo.COM (for example) can be sent to
- X foo.COM!user@seismo.CSS.GOV.
- X
- X(8) My System V machine with sendmail produces the error message
- X "No ! in UUCP!" when I send local mail.
- X
- X This is a bug in older versions of sendmail. If you have the
- X source to sendmail, make the following change to deliver.c to
- X fix the problem:
- X
- X
- X *** deliver.c.stock
- X --- deliver.c
- X ***************
- X *** 1016,1022
- X expand("$g", buf, &buf[sizeof buf - 1], CurEnv);
- X bang = index(buf, '!');
- X if (bang == NULL)
- X ! syserr("No ! in UUCP! (%s)", buf);
- X else
- X {
- X *bang++ = '\0';
- X
- X --- 1016,1022 -----
- X expand("$g", buf, &buf[sizeof buf - 1], CurEnv);
- X bang = index(buf, '!');
- X if (bang == NULL)
- X ! return;
- X else
- X {
- X *bang++ = '\0';
- X
- X If you do not have source to sendmail, a workaround is to edit
- X /usr/lib/sendmail.cf (or template.cf before you run make.cf.sh.)
- X Find the line beginning "Mlocal", and remove the "U" on that line.
- X This has an undesirable side effect, in that the From_ line will
- X be in a format not understood by mailx, but since most mailx replies
- X use the From: line, this should be a minor problem.
- X
- X#
- X# @(#)Trouble 2.1 smail 12/16/86
- X# [Edited by MRH 12/14/86]
- X#
- @//E*O*F doc/Trouble//
- if test 10836 -ne "`wc -c <'doc/Trouble'`"; then
- echo shar: error transmitting "'doc/Trouble'" '(should have been 10836 characters)'
- fi
- fi # end of overwriting check
- echo shar: extracting "'doc/aliases.8'" '(4445 characters)'
- if test -f 'doc/aliases.8' ; then
- echo shar: will not over-write existing file "'doc/aliases.8'"
- else
- sed 's/^X//' >doc/aliases.8 <<'@//E*O*F doc/aliases.8//'
- X.TH ALIASES 8
- X.tr ~
- X.SH NAME
- Xaliases \- alias file for smail
- X.SH DESCRIPTION
- XThis file is used by
- X.I smail
- Xonly if
- X.I SENDMAIL
- Xis
- X.I not defined.
- XIf
- X.I SENDMAIL
- Xis defined, then
- X.I sendmail
- Xdoes all of the aliasing for the host.
- X.PP
- XThis file contains a list of aliases for
- Xlocal users or mailing lists.
- XThe format of each alias is
- X.sp
- X.ce
- Xalias_name~recip_name1~recip_name2~...
- X.sp
- XAn attempt has been made to remain compatible with
- X.I sendmail
- Xalias file format, though the syntax is much more format free than
- X.I sendmail.
- XAs distributed,
- X.I case differences are ignored
- Xwhen comparing names to aliases.
- XOnly alias names which resolve to the local host are recognized, and are
- Xstored in their local form.
- XLines which start with a white~space are continuation lines.
- XParenthesised strings are taken as comments (no nesting),
- Xas is anything after a '#' (as in
- X.IR /bin/sh ).
- XHere are some examples:
- X.sp
- X.nf
- X# this whole line is a comment
- X#
- X# These are equivalent definitions
- X
- Xalias_name recip1 recip2 recip3
- X
- Xalias_name: recip1, recip2 , recip3
- X
- Xalias_name recip1 recip2
- X recip3
- X
- Xalias_name recip1 # Recip1's name
- X recip2 # Recip2's name
- X recip3 # Recip3's name
- X
- Xalias_name recip1 (Recp1's name) recip2 (Recp2's name)
- X recip3 (Recp3's name)
- X
- Xalias_name@thishost recip1 recip2 recip3
- X
- Xalias_name@thisdomain recip1 recip2 recip3
- X
- Xthishost!alias_name recip1 recip2 recip3
- X
- Xthisdomain!alias_name recip1 recip2 recip3
- X.fi
- X.PP
- XMailing lists are easily handled by two forms of file inclusion.
- XThe first form is the same as is supported by
- X.I sendmail
- X.sp
- X.ce
- Xmylist :include:/usr/lib/ml/mylist
- X.sp
- XIn this example, each entry in
- X.I /usr/lib/ml/mylist
- Xwould be added to the alias for
- X.I mylist.
- XThe second form is unique to
- X.I smail.
- XIt allows the
- X.I aliases
- Xfile to include other
- X.I aliases
- Xfiles.
- X.sp
- X.ce
- X:include:/usr/lib/ml/more-aliases
- X.sp
- XThis would include the file
- X.I /usr/lib/ml/more-aliases
- Xas a regular alias file.
- XThis makes it easier to maintain groups of aliases that
- Xchange frequently, such as the list of netnews moderators.
- X.PP
- XAll aliases are recursive, so care
- Xmust be taken in their definition.
- X.I smail
- Xaliasing attempts to prevent infinite loops, and to
- Xdo what was intended by the user. For example, the alias:
- X.sp
- X.ce
- Xmylogin~mypc!mylogin~mylogin
- X.sp
- XExpands to
- X.sp
- X.ce
- Xmypc!mylogin mylogin
- X.sp
- Xeven though the second occurrence of
- X.I mylogin
- Xmatches the alias name.
- X.sp
- XBoth forms of file inclusion are recursive, too,
- Xso watch out for nesting include files. They
- Xmay lead to infinite loops.
- X.PP
- XWhile the cost of parsing an alias file is usually negligible,
- Xit's wise to take savings anywhere savings
- Xcan be found. Therefore, it's worth mentioning
- X.IR smail 's
- Xparsing strategy.
- X.I smail
- Xwill try to get by with doing as little work
- Xas possible when aliasing. If on a particular
- Xinvocation of
- X.I smail,
- Xnone of the recipent addresses are local,
- X(i.e., not potential aliases)
- Xthen the
- X.I aliases
- Xfile won't even be read. Similarly,
- Xwhen an
- X.I aliases
- Xfile is read, it does not expand any of the :include: files
- Xuntil they are referenced. Thus, in the alias (above) for
- X.I mylist,
- Xthe file
- X.I :include:/usr/lib/ml/mylist
- Xwould not be opened and read (parsed) unless
- Xmail was sent to
- X.I mylist.
- XWise use of :include: files can greatly
- Xincrease the efficiency of the alias utility.
- XIt's not clear exactly where the
- X.I break-even
- Xpoint is when deciding to use an :include: file in an alias,
- Xversus having all of the recipents listed on the line;
- Xbut if a mailing list is large (whatever that means)
- Xit is wise to use the :include: feature to save on
- Xparsing costs. Note that this discussion only applies to the
- Xfirst form of file inclusion, since reading an
- X.I aliases
- Xfile constitutes a reference to :include: files of the second form.
- X.PP
- XThere is another form of aliasing which works with the alias capability.
- XThis is called
- X.I per user forwarding.
- XFor a given user name, if there is no alias for the user
- Xthen, if the file
- X.I ~user/.forward
- Xexists, then its contents will be treated as an alias for
- Xthe user. The syntax is the same as that of the
- Xrecipient lists in the alias file described above.
- X.PP
- XOne difference between
- X.I smail
- Xand
- X.I sendmail
- Xis that
- X.I smail
- Xdoesn't handle stuff like mail to files
- Xor command execution.
- X.SH SEE ALSO
- Xsmail(8), paths(8), pathproc(8)
- X.SH VERSION
- X@(#)aliases.8 2.2 smail 1/28/87
- @//E*O*F doc/aliases.8//
- if test 4445 -ne "`wc -c <'doc/aliases.8'`"; then
- echo shar: error transmitting "'doc/aliases.8'" '(should have been 4445 characters)'
- fi
- fi # end of overwriting check
- echo shar: extracting "'doc/lcasep.8'" '(741 characters)'
- if test -f 'doc/lcasep.8' ; then
- echo shar: will not over-write existing file "'doc/lcasep.8'"
- else
- sed 's/^X//' >doc/lcasep.8 <<'@//E*O*F doc/lcasep.8//'
- X.TH LCASEP 8
- X.tr ~
- X.SH NAME
- Xlcasep \- convert first field to lower case
- X.SH SYNOPSIS
- X.B lcasep
- X[ -f infile ] [ -o outfile ]
- X.SH DESCRIPTION
- X.I Lcasep
- Xconverts all upper case characters
- Xin the first field of each input line to lower case
- Xand writes the line to its output. By default,
- X.I lcasep
- Xreads from the standard input and writes to the standard output.
- XFields are delimited by a tab (ascii~0x9) character.
- XIt is used in preparation for sorting
- X.IR smail "'s"
- X.I paths
- Xdatabase. There is a bug in
- X.I sort -f
- Xthat causes non-alphanumeric keys to be sorted incorrectly.
- XConversion before sorting avoids this bug.
- X.SH SEE ALSO
- Xpathalias - by Peter Honeyman
- X.br
- Xsmail(8), paths(8), pathproc(8)
- X.SH VERSION
- X@(#)lcasep.8 2.1 smail 12/14/86
- @//E*O*F doc/lcasep.8//
- if test 741 -ne "`wc -c <'doc/lcasep.8'`"; then
- echo shar: error transmitting "'doc/lcasep.8'" '(should have been 741 characters)'
- fi
- fi # end of overwriting check
- echo shar: extracting "'doc/pathproc.8'" '(891 characters)'
- if test -f 'doc/pathproc.8' ; then
- echo shar: will not over-write existing file "'doc/pathproc.8'"
- else
- sed 's/^X//' >doc/pathproc.8 <<'@//E*O*F doc/pathproc.8//'
- X.TH PATHPROC 8
- X.SH NAME
- Xpathproc \- pathalias post\-processor for smail routing database
- X.SH DESCRIPTION
- X.I Pathproc
- Xtakes lines of the form
- X.sp
- X.ce
- X\fIroute_cost key route\fP
- X.sp
- Xas produced by
- X.I pathalias -c
- Xand converts it to the form
- X.sp
- X.ce
- X\fI key route cost\fP
- X.sp
- Xas described in
- X.IR paths (8).
- XOn the input, the
- X.I route_cost
- Xis
- X.IR pathalias "'s"
- Xtotal cost for the route.
- XOn the output, the
- X.I cost
- Xis the cost for the
- X.I first segment
- Xof the route.
- XThis represents the cost, to the local host,
- Xof passing the mail to its neighbor.
- X.PP
- XThe output is sorted by
- X.I key
- Xin ascending order.
- X.SH EXAMPLE
- XHere's an example of how you might use
- X.I pathproc:
- X.sp
- X.in+3
- Xpathalias -c \fImap_files\fP | pathproc > newpaths
- X.br
- Xmv newpaths /usr/lib/uucp/paths
- X.in
- X.sp
- X.SH SEE ALSO
- Xpathalias - by Peter Honeyman
- X.br
- Xsmail(8), lcasep(8), paths(8)
- X.SH VERSION
- X@(#)pathproc.8 2.1 smail 12/14/86
- @//E*O*F doc/pathproc.8//
- if test 891 -ne "`wc -c <'doc/pathproc.8'`"; then
- echo shar: error transmitting "'doc/pathproc.8'" '(should have been 891 characters)'
- fi
- fi # end of overwriting check
- echo shar: extracting "'src/Makefile'" '(743 characters)'
- if test -f 'src/Makefile' ; then
- echo shar: will not over-write existing file "'src/Makefile'"
- else
- sed 's/^X//' >src/Makefile <<'@//E*O*F src/Makefile//'
- X# Makefile for smail (not a installation makefile)
- X
- X# @(#)Makefile 2.2 (smail) 1/16/87
- X
- XCFLAGS = -O
- X#
- X# System V Release 2.0 sites can use -lmalloc for a faster malloc
- X#
- X#LIBS = -lmalloc
- X
- XOBJECTS = main.o map.o resolve.o deliver.o misc.o alias.o headers.o getpath.o getopt.o
- X
- Xall: smail svbinmail lcasep pathproc
- X
- Xsmail: $(OBJECTS)
- X cc $(CFLAGS) $(OBJECTS) -o smail $(LIBS)
- X
- X$(OBJECTS): defs.h
- X cc $(CFLAGS) -c $<
- X
- Xsvbinmail: svbinmail.c defs.h
- X cc $(CFLAGS) svbinmail.c -o svbinmail
- X
- Xlcasep: lcasep.c
- X cc $(CFLAGS) lcasep.c -o lcasep
- X
- Xpathproc: pathproc.sh
- X cp pathproc.sh pathproc
- X chmod 755 pathproc
- X
- Xinstall: all
- X @echo read doc/Install
- X
- Xclean:
- X rm -f *.o *.ln a.out core
- X
- Xclobber: clean
- X rm -f smail rmail lcasep pathproc svbinmail
- @//E*O*F src/Makefile//
- if test 743 -ne "`wc -c <'src/Makefile'`"; then
- echo shar: error transmitting "'src/Makefile'" '(should have been 743 characters)'
- fi
- fi # end of overwriting check
- echo shar: "End of shell archive."
- exit 0
-